/*
 * 项目名称:    wms-server-jeecg
 * 创建人员:    DongPeng
 * 创建时间:    2023-10-10
 * copyright(c) 2022 无锡星智数服科技有限公司
 */
package org.jeecg.modules.dock.client;

import com.dtflys.forest.annotation.*;
import com.dtflys.forest.converter.json.ForestJacksonConverter;
import org.jeecg.modules.dock.constant.SystemConstants;
import org.jeecg.modules.dock.entity.mes.request.MaterialZJPlanProductionLine;
import org.jeecg.modules.dock.entity.mes.request.MesBaseRequestVO;
import org.jeecg.modules.dock.entity.mes.request.MesBaseZLRequestVO;
import org.jeecg.modules.dock.entity.mes.response.MesBaseResponseVO;
import org.jeecg.modules.dock.entity.mes.response.PalletCodeQueryResponseVO;
import org.jeecgframework.minidao.annotation.Param;

/**
 * Mes提供接口
 *
 * @author DongPeng
 * @version 1.0.0
 * @date 2023-10-10
 * @description 类描述
 */
@BaseRequest(
        baseURL = "${mesAddress}",
        headers = {"~request_method:POST", "content-Type:application/json", SystemConstants.SYS_HEADER + ":" + SystemConstants.MES}
)
@ForestClient
public interface MesRequestClient extends BaseRequestClient {

    /**
     * 获取原卷纵剪计划产线
     *
     * @param request 请求参数
     * @return
     * @author DongPeng
     * @date 2023/10/10 15:28
     */
    @Post(value = "/Api/Execute", decoder = ForestJacksonConverter.class)
    MesBaseResponseVO getMaterialZJPlanProductionLine(@Header("taskType") String taskType, @Body MaterialZJPlanProductionLine request);

    /**
     * 任务状态更新
     *
     * @param requestVO
     * @return
     */
    @Post(value = "/Api/Execute", decoder = ForestJacksonConverter.class)
    MesBaseResponseVO updateStatus(@Header("taskType") String taskType, @Body MesBaseRequestVO requestVO);

    /**
     * 任务状态更新
     *
     * @param requestVO
     * @return
     */
    @Post(value = "/Api/Execute", decoder = ForestJacksonConverter.class)
    MesBaseResponseVO updateZLStatus(@Header("taskType") String taskType, @Body MesBaseZLRequestVO requestVO);

    /**
     * 包装托盘码查询
     *
     * @author hansen
     * @since 2024/1/12 10:00
     * @param packageCode
     * @return org.jeecg.modules.dock.entity.mes.response.PalletCodeQueryResponseVO
     */
    @Post(value = "/Api/Execute", decoder = ForestJacksonConverter.class)
    PalletCodeQueryResponseVO palletCodeQuery(@Param("packageCode") String packageCode);

}
